#include "HerzeleidPrecompiled.hxx"
#include "HerzeleidConverter.hxx"
using namespace Herzeleid;

//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_VARIABLE_CLASS &ShaderVariableClass 
//	)
//{
//	StringStream8 wss;
//
//	switch( ShaderVariableClass )
//	{
//	case D3D_SVC_SCALAR:
//		wss << "SCALAR"; break;
//	case D3D_SVC_VECTOR:
//		wss << "VECTOR"; break;
//	case D3D_SVC_MATRIX_ROWS:
//		wss << "MATRIX_ROWS"; break;
//	case D3D_SVC_MATRIX_COLUMNS:
//		wss << "MATRIX_COLUMNS"; break;
//	case D3D_SVC_OBJECT:
//		wss << "OBJECT"; break;
//	case D3D_SVC_STRUCT:
//		wss << "STRUCT"; break;
//	case D3D_SVC_INTERFACE_CLASS:
//		wss << "INTERFACE_CLASS"; break;
//	case D3D_SVC_INTERFACE_POINTER:
//		wss << "INTERFACE_POINTER"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_VARIABLE_FLAGS &ShaderVariableFlags 
//	)
//{
//	StringStream8 wss;
//
//	switch( ShaderVariableFlags )
//	{
//	case D3D_SVF_USERPACKED:
//		wss << "USERPACKED"; break;
//	case D3D_SVF_USED:
//		wss << "USED"; break;
//	case D3D_SVF_INTERFACE_POINTER:
//		wss << "INTERFACE_POINTER"; break;
//	case D3D_SVF_INTERFACE_PARAMETER:
//		wss << "INTERFACE_PARAMETER"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_VARIABLE_TYPE &ShaderVariableType 
//	)
//{
//	StringStream8 wss;
//
//	switch( ShaderVariableType )
//	{
//	case D3D_SVT_VOID:
//		wss << "VOID"; break;
//	case D3D_SVT_BOOL:
//		wss << "BOO"; break;
//	case D3D_SVT_INT:
//		wss << "INTEGER"; break;
//	case D3D_SVT_FLOAT:
//		wss << "FLOAT"; break;
//	case D3D_SVT_STRING:
//		wss << "STRING"; break;
//	case D3D_SVT_TEXTURE:
//		wss << "TEXTURE"; break;
//	case D3D_SVT_TEXTURE1D:
//		wss << "TEXTURE1D"; break;
//	case D3D_SVT_TEXTURE2D:
//		wss << "TEXTURE2D"; break;
//	case D3D_SVT_TEXTURE3D:
//		wss << "TEXTURE3D"; break;
//	case D3D_SVT_TEXTURECUBE:
//		wss << "TEXTURECUBE"; break;
//	case D3D_SVT_SAMPLER:
//		wss << "SAMPLER"; break;
//	case D3D_SVT_SAMPLER1D:
//		wss << "SAMPLER1D"; break;
//	case D3D_SVT_SAMPLER2D:
//		wss << "SAMPLER2D"; break;
//	case D3D_SVT_SAMPLER3D:
//		wss << "SAMPLER3D"; break;
//	case D3D_SVT_SAMPLERCUBE:
//		wss << "SAMPLERCUBE"; break;
//	case D3D_SVT_PIXELSHADER:
//		wss << "PIXELSHADER"; break;
//	case D3D_SVT_VERTEXSHADER:
//		wss << "VERTEXSHADER"; break;
//	case D3D_SVT_PIXELFRAGMENT:
//		wss << "PIXELFRAGMENT"; break;
//	case D3D_SVT_VERTEXFRAGMENT:
//		wss << "VERTEXFRAGMENT"; break;
//	case D3D_SVT_UINT:
//		wss << "UINT"; break;
//	case D3D_SVT_UINT8:
//		wss << "UINT8"; break;
//	case D3D_SVT_GEOMETRYSHADER:
//		wss << "GEOMETRYSHADER"; break;
//	case D3D_SVT_RASTERIZER:
//		wss << "RASTERIZER"; break;
//	case D3D_SVT_DEPTHSTENCIL:
//		wss << "DEPTHSTENCI"; break;
//	case D3D_SVT_BLEND:
//		wss << "BLEND"; break;
//	case D3D_SVT_BUFFER:
//		wss << "BUFFER"; break;
//	case D3D_SVT_CBUFFER:
//		wss << "CBUFFER"; break;
//	case D3D_SVT_TBUFFER:
//		wss << "TBUFFER"; break;
//	case D3D_SVT_TEXTURE1DARRAY:
//		wss << "TEXTURE1DARRAY"; break;
//	case D3D_SVT_TEXTURE2DARRAY:
//		wss << "TEXTURE2DARRAY"; break;
//	case D3D_SVT_RENDERTARGETVIEW:
//		wss << "RENDERTARGETVIEW"; break;
//	case D3D_SVT_DEPTHSTENCILVIEW:
//		wss << "DEPTHSTENCILVIEW"; break;
//	case D3D_SVT_TEXTURE2DMS:
//		wss << "TEXTURE2DMS"; break;
//	case D3D_SVT_TEXTURE2DMSARRAY:
//		wss << "TEXTURE2DMSARRAY"; break;
//	case D3D_SVT_TEXTURECUBEARRAY:
//		wss << "TEXTURECUBEARRAY"; break;
//	case D3D_SVT_HULLSHADER:
//		wss << "HULLSHADER"; break;
//	case D3D_SVT_DOMAINSHADER:
//		wss << "DOMAINSHADER"; break;
//	case D3D_SVT_INTERFACE_POINTER:
//		wss << "INTERFACE_POINTER"; break;
//	case D3D_SVT_COMPUTESHADER:
//		wss << "COMPUTESHADER"; break;
//	case D3D_SVT_DOUBLE:
//		wss << "DOUBLE"; break;
//	case D3D_SVT_RWTEXTURE1D:
//		wss << "RWTEXTURE1D"; break;
//	case D3D_SVT_RWTEXTURE1DARRAY:
//		wss << "RWTEXTURE1DARRAY"; break;
//	case D3D_SVT_RWTEXTURE2D:
//		wss << "RWTEXTURE2D"; break;
//	case D3D_SVT_RWTEXTURE2DARRAY:
//		wss << "RWTEXTURE2DARRAY"; break;
//	case D3D_SVT_RWTEXTURE3D:
//		wss << "RWTEXTURE3D"; break;
//	case D3D_SVT_RWBUFFER:
//		wss << "RWBUFFER"; break;
//	case D3D_SVT_BYTEADDRESS_BUFFER:
//		wss << "BYTEADDRESS_BUFFER"; break;
//	case D3D_SVT_RWBYTEADDRESS_BUFFER:
//		wss << "RWBYTEADDRESS_BUFFER"; break;
//	case D3D_SVT_STRUCTURED_BUFFER:
//		wss << "STRUCTURED_BUFFER"; break;
//	case D3D_SVT_RWSTRUCTURED_BUFFER:
//		wss << "RWSTRUCTURED_BUFFER"; break;
//	case D3D_SVT_APPEND_STRUCTURED_BUFFER:
//		wss << "APPEND_STRUCTURED_BUFFER"; break;
//	case D3D_SVT_CONSUME_STRUCTURED_BUFFER:
//		wss << "CONSUME_STRUCTURED_BUFFER"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_INPUT_FLAGS &ShaderInputFlags 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( ShaderInputFlags )
//	{
//	case D3D_SIF_USERPACKED:
//		wss << "USERPACKED"; break;
//	case D3D_SIF_COMPARISON_SAMPLER:
//		wss << "COMPARISON_SAMPLER"; break;
//	case D3D_SIF_TEXTURE_COMPONENT_0:
//		wss << "TEXTURE_COMPONENT_0"; break;
//	case D3D_SIF_TEXTURE_COMPONENT_1:
//		wss << "TEXTURE_COMPONENT_1"; break;
//	case D3D_SIF_TEXTURE_COMPONENTS:
//		wss << "TEXTURE_COMPONENTS"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_INPUT_TYPE &ShaderInputType
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( ShaderInputType )
//	{
//	case D3D_SIT_CBUFFER:
//		wss << "CBUFFER"; break;
//	case D3D_SIT_TBUFFER:
//		wss << "TBUFFER"; break;
//	case D3D_SIT_TEXTURE:
//		wss << "TEXTURE"; break;
//	case D3D_SIT_SAMPLER:
//		wss << "SAMPLER"; break;
//	case D3D_SIT_UAV_RWTYPED:
//		wss << "UAV_RW_TYPED"; break;
//	case D3D_SIT_STRUCTURED:
//		wss << "STRUCTURED"; break;
//	case D3D_SIT_UAV_RWSTRUCTURED:
//		wss << "UAV_RW_STRUCTURED"; break;
//	case D3D_SIT_BYTEADDRESS:
//		wss << "UAV_BYTE_ADDRESS"; break;
//	case D3D_SIT_UAV_RWBYTEADDRESS:
//		wss << "UAV_RW_BYTE_ADDRESS"; break;
//	case D3D_SIT_UAV_APPEND_STRUCTURED:
//		wss << "UAV_APPEND_STRUCTURED"; break;
//	case D3D_SIT_UAV_CONSUME_STRUCTURED:
//		wss << "UAV_CONSUME_STRUCTURED"; break;
//	case D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER:
//		wss << "UAV_RWSTRUCTURED_WITH_COUNTER"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_SHADER_CBUFFER_FLAGS &ShaderConstantBufferFlags
//	)
//{
//	Herzeleid::Standard::StringStream8 s;
//
//	switch( ShaderConstantBufferFlags )
//	{
//	case D3D_CBF_USERPACKED:
//		s << "USERPACKED"; break;
//	case D3D_CBF_FORCE_DWORD:
//		s << "FORCE_DWORD"; break;
//	}
//
//	return( s.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_CBUFFER_TYPE &ConstantBufferType 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( ConstantBufferType )
//	{
//	case D3D_CT_CBUFFER:
//		wss << "CBUFFER"; break;
//	case D3D_CT_TBUFFER:
//		wss << "TBUFFER"; break;
//	case D3D_CT_INTERFACE_POINTERS:
//		wss << "INTERFACE_POINTERS"; break;
//	case D3D_CT_RESOURCE_BIND_INFO:
//		wss << "RESOURCE_BIND_INFO"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_NAME &Name 
//	)
//{
//
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( Name )
//	{
//	case D3D_NAME_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_NAME_POSITION:
//		wss << "POSITION"; break;
//	case D3D_NAME_CLIP_DISTANCE:
//		wss << "CLIP_DISTANCE"; break;
//	case D3D_NAME_CULL_DISTANCE:
//		wss << "CULL_DISTANCE"; break;
//	case D3D_NAME_RENDER_TARGET_ARRAY_INDEX:
//		wss << "RENDER_TARGET_ARRAY_INDEX"; break;
//	case D3D_NAME_VIEWPORT_ARRAY_INDEX:
//		wss << "VIEWPORT_ARRAY_INDEX"; break;
//	case D3D_NAME_VERTEX_ID:
//		wss << "VERTEX_ID"; break;
//	case D3D_NAME_PRIMITIVE_ID:
//		wss << "PRIMITIVE_ID"; break;
//	case D3D_NAME_INSTANCE_ID:
//		wss << "INSTANCE_ID"; break;
//	case D3D_NAME_IS_FRONT_FACE:
//		wss << "IS_FRONT_FACE"; break;
//	case D3D_NAME_SAMPLE_INDEX:
//		wss << "SAMPLE_INDEX"; break;
//	case D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR:
//		wss << "FINAL_QUAD_EDGE_TESSFACTOR"; break;
//	case D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR:
//		wss << "FINAL_QUAD_INSIDE_TESSFACTOR"; break;
//	case D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR:
//		wss << "FINAL_TRI_EDGE_TESSFACTOR"; break;
//	case D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR:
//		wss << "FINAL_TRI_INSIDE_TESSFACTOR"; break;
//	case D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR:
//		wss << "FINAL_LINE_DETAIL_TESSFACTOR"; break;
//	case D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR:
//		wss << "FINAL_LINE_DENSITY_TESSFACTOR"; break;
//	case D3D_NAME_TARGET:
//		wss << "TARGET"; break;
//	case D3D_NAME_DEPTH:
//		wss << "DEPTH"; break;
//	case D3D_NAME_COVERAGE:
//		wss << "COVERAGE"; break;
//	case D3D_NAME_DEPTH_GREATER_EQUAL:
//		wss << "DEPTH_GREATER_EQUA"; break;
//	case D3D_NAME_DEPTH_LESS_EQUAL:
//		wss << "DEPTH_LESS_EQUA"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_RESOURCE_RETURN_TYPE &ResourceReturn 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( ResourceReturn )
//	{
//	case D3D_RETURN_TYPE_UNORM:
//		wss << "UNORM"; break;
//	case D3D_RETURN_TYPE_SNORM:
//		wss << "SNORM"; break;
//	case D3D_RETURN_TYPE_SINT:
//		wss << "SINT"; break;
//	case D3D_RETURN_TYPE_UINT:
//		wss << "UINT"; break;
//	case D3D_RETURN_TYPE_FLOAT:
//		wss << "FLOAT"; break;
//	case D3D_RETURN_TYPE_DOUBLE:
//		wss << "DOUBLE"; break;
//	case D3D_RETURN_TYPE_MIXED:
//		wss << "MIXED"; break;
//	case D3D_RETURN_TYPE_CONTINUED:
//		wss << "CONTINUED"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_REGISTER_COMPONENT_TYPE &RegisterComponentType
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch( RegisterComponentType )
//	{
//	case D3D_REGISTER_COMPONENT_UNKNOWN:
//		wss << "UNKNOWN"; break;
//	case D3D_REGISTER_COMPONENT_UINT32:
//		wss << "UINT32"; break;
//	case D3D_REGISTER_COMPONENT_SINT32:
//		wss << "SINT32"; break;
//	case D3D_REGISTER_COMPONENT_FLOAT32:
//		wss << "FLOAT32"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_TESSELLATOR_DOMAIN &TesselatorDomain
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch ( TesselatorDomain )
//	{
//	case D3D_TESSELLATOR_DOMAIN_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_TESSELLATOR_DOMAIN_ISOLINE:
//		wss << "ISOLINE"; break;
//	case D3D_TESSELLATOR_DOMAIN_TRI:
//		wss << "TRIANGLE"; break;
//	case D3D_TESSELLATOR_DOMAIN_QUAD:
//		wss << "QUAD"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_TESSELLATOR_PARTITIONING &TesselatorPartitioning 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch ( TesselatorPartitioning )
//	{
//	case D3D_TESSELLATOR_PARTITIONING_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_TESSELLATOR_PARTITIONING_INTEGER:
//		wss << "INTEGER"; break;
//	case D3D_TESSELLATOR_PARTITIONING_POW2:
//		wss << "POW2"; break;
//	case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD:
//		wss << "FRACTIONAL_ODD"; break;
//	case D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN:
//		wss << "FRACTIONAL_EVEN"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_TESSELLATOR_OUTPUT_PRIMITIVE &TesselatorOutputPrimitive
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch ( TesselatorOutputPrimitive )
//	{
//	case D3D_TESSELLATOR_OUTPUT_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_TESSELLATOR_OUTPUT_POINT:
//		wss << "POINT"; break;
//	case D3D_TESSELLATOR_OUTPUT_LINE:
//		wss << "LINE"; break;
//	case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW:
//		wss << "TRIANGLE_CLOCKWISE"; break;
//	case D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW:
//		wss << "TRIANGLE_COUNTER_CLOCKWISE"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D_PRIMITIVE_TOPOLOGY &PrimitiveTopology
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch ( PrimitiveTopology )
//	{
//	case D3D_PRIMITIVE_TOPOLOGY_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_POINTLIST:
//		wss << "POINT_LIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_LINELIST:
//		wss << "LINE_LIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP:
//		wss << "LINE_STRIP"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST:
//		wss << "TRIANGLE_LIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP:
//		wss << "TRIANGLE_STRIP"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ:
//		wss << "LINE_LIST_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ:
//		wss << "LINE_STRIP_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ:
//		wss << "TRIANGLE_LIST_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ:
//		wss << "TRIANGLE_STRIP_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST:
//		wss << "1_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST:
//		wss << "2_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST:
//		wss << "3_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST:
//		wss << "4_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST:
//		wss << "5_CONTROL_POIN_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST:
//		wss << "6_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST:
//		wss << "7_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST:
//		wss << "9_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST:
//		wss << "10_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST:
//		wss << "11_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST:
//		wss << "12_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST:
//		wss << "13_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST:
//		wss << "14_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST:
//		wss << "15_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST:
//		wss << "16_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST:
//		wss << "17_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST:
//		wss << "18_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST:
//		wss << "19_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST:
//		wss << "20_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST:
//		wss << "21_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST:
//		wss << "22_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST:
//		wss << "23_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST:
//		wss << "24_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST:
//		wss << "25_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST:
//		wss << "26_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST:
//		wss << "27_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST:
//		wss << "28_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST:
//		wss << "29_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST:
//		wss << "30_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST:
//		wss << "31_CONTROL_POINT_PATCHLIST"; break;
//	case D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST:
//		wss << "32_CONTROL_POINT_PATCHLIST"; break;
//	}
//
//	return( wss.str() );
//}
//
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString(
//	_In_ const D3D_PRIMITIVE &Primitive 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	switch ( Primitive )
//	{
//	case D3D_PRIMITIVE_UNDEFINED:
//		wss << "UNDEFINED"; break;
//	case D3D_PRIMITIVE_POINT:
//		wss << "POINT"; break;
//	case D3D_PRIMITIVE_LINE:
//		wss << "LINE"; break;
//	case D3D_PRIMITIVE_TRIANGLE:
//		wss << "TRIANGLE"; break;
//	case D3D_PRIMITIVE_LINE_ADJ:
//		wss << "LINE_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_TRIANGLE_ADJ:
//		wss << "TRIANGLE_w/ADJACENCY"; break;
//	case D3D_PRIMITIVE_1_CONTROL_POINT_PATCH:
//		wss << "1_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_2_CONTROL_POINT_PATCH:
//		wss << "2_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_3_CONTROL_POINT_PATCH:
//		wss << "3_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_4_CONTROL_POINT_PATCH:
//		wss << "4_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_5_CONTROL_POINT_PATCH:
//		wss << "5_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_6_CONTROL_POINT_PATCH:
//		wss << "6_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_7_CONTROL_POINT_PATCH:
//		wss << "7_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_8_CONTROL_POINT_PATCH:
//		wss << "9_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_10_CONTROL_POINT_PATCH:
//		wss << "10_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_11_CONTROL_POINT_PATCH:
//		wss << "11_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_12_CONTROL_POINT_PATCH:
//		wss << "12_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_13_CONTROL_POINT_PATCH:
//		wss << "13_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_14_CONTROL_POINT_PATCH:
//		wss << "14_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_15_CONTROL_POINT_PATCH:
//		wss << "15_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_16_CONTROL_POINT_PATCH:
//		wss << "16_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_17_CONTROL_POINT_PATCH:
//		wss << "17_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_18_CONTROL_POINT_PATCH:
//		wss << "18_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_19_CONTROL_POINT_PATCH:
//		wss << "19_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_20_CONTROL_POINT_PATCH:
//		wss << "20_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_21_CONTROL_POINT_PATCH:
//		wss << "21_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_22_CONTROL_POINT_PATCH:
//		wss << "22_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_23_CONTROL_POINT_PATCH:
//		wss << "23_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_24_CONTROL_POINT_PATCH:
//		wss << "24_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_25_CONTROL_POINT_PATCH:
//		wss << "25_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_26_CONTROL_POINT_PATCH:
//		wss << "26_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_27_CONTROL_POINT_PATCH:
//		wss << "27_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_28_CONTROL_POINT_PATCH:
//		wss << "28_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_29_CONTROL_POINT_PATCH:
//		wss << "29_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_30_CONTROL_POINT_PATCH:
//		wss << "30_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_31_CONTROL_POINT_PATCH:
//		wss << "31_CONTROL_POINT_PATCH"; break;
//	case D3D_PRIMITIVE_32_CONTROL_POINT_PATCH:
//		wss << "32_CONTROL_POINT_PATCH"; break;
//	}
//
//	return( wss.str() );
//}
//
//#ifdef HERZELEID_DESKTOP
//Herzeleid::Standard::String8 Herzeleid::DirectXNative::Converter::ToString( 
//	_In_ const D3D11_SHADER_DESC &ShaderDescription 
//	)
//{
//	Herzeleid::Standard::StringStream8 wss;
//
//	wss << "Version: " << ShaderDescription.Version << std::endl;
//	wss << "Creator: " << ShaderDescription.Creator << std::endl;
//	wss << "Flags: " << ShaderDescription.Flags << std::endl;
//	wss << "ConstantBuffers: " << ShaderDescription.ConstantBuffers << std::endl;
//	wss << "BoundResources: " << ShaderDescription.BoundResources << std::endl;
//	wss << "InputParameters: " << ShaderDescription.InputParameters << std::endl;
//	wss << "OutputParameters: " << ShaderDescription.OutputParameters << std::endl;
//	wss << "InstructionCount: " << ShaderDescription.InstructionCount << std::endl;
//	wss << "TempRegisterCount: " << ShaderDescription.TempRegisterCount << std::endl;
//	wss << "TempArrayCount: " << ShaderDescription.TempArrayCount << std::endl;
//	wss << "DefCount: " << ShaderDescription.DefCount << std::endl;
//	wss << "DclCount: " << ShaderDescription.DclCount << std::endl;
//	wss << "TextureNormalInstructions: " << ShaderDescription.TextureNormalInstructions << std::endl;
//	wss << "TextureLoadInstructions: " << ShaderDescription.TextureLoadInstructions << std::endl;
//	wss << "TextureCompInstructions: " << ShaderDescription.TextureCompInstructions << std::endl;
//	wss << "TextureBiasInstructions: " << ShaderDescription.TextureBiasInstructions << std::endl;
//	wss << "TextureGradientInstructions: " << ShaderDescription.TextureGradientInstructions << std::endl;
//	wss << "FloatInstructionCount: " << ShaderDescription.FloatInstructionCount << std::endl;
//	wss << "IntInstructionCount: " << ShaderDescription.IntInstructionCount << std::endl;
//	wss << "UintInstructionCount: " << ShaderDescription.UintInstructionCount << std::endl;
//	wss << "StaticFlowControlCount: " << ShaderDescription.StaticFlowControlCount << std::endl;
//	wss << "DynamicFlowControlCount: " << ShaderDescription.DynamicFlowControlCount << std::endl;
//	wss << "MacroInstructionCount: " << ShaderDescription.MacroInstructionCount << std::endl;
//	wss << "ArrayInstructionCount: " << ShaderDescription.ArrayInstructionCount << std::endl;
//	wss << "CutInstructionCount: " << ShaderDescription.CutInstructionCount << std::endl;
//	wss << "EmitInstructionCount: " << ShaderDescription.EmitInstructionCount << std::endl;
//	wss << "GSOutputTopology: " << ToString( _In_ ShaderDescription.GSOutputTopology ) << std::endl;
//	wss << "GSMaxOutputVertexCount: " << ShaderDescription.GSMaxOutputVertexCount << std::endl;
//	wss << "InputPrimitive: " << ToString( _In_ ShaderDescription.InputPrimitive ) << std::endl;
//	wss << "PatchConstantParameters: " << ShaderDescription.PatchConstantParameters << std::endl;
//	wss << "cGSInstanceCount: " << ShaderDescription.cGSInstanceCount << std::endl;
//	wss << "cControlPoints: " << ShaderDescription.cControlPoints << std::endl;
//	wss << "HSOutputPrimitive: " << ToString( _In_ ShaderDescription.HSOutputPrimitive ) << std::endl;
//	wss << "HSPartitioning: " << ToString( _In_ ShaderDescription.HSPartitioning ) << std::endl;
//	wss << "TessellatorDomain: " << ToString( _In_ ShaderDescription.TessellatorDomain ) << std::endl;
//	wss << "cBarrierInstructions: " << ShaderDescription.cBarrierInstructions << std::endl;
//	wss << "cInterlockedInstructions: " << ShaderDescription.cInterlockedInstructions << std::endl;
//	wss << "cTextureStoreInstructions: " << ShaderDescription.cTextureStoreInstructions << std::endl;
//
//	return( wss.str() );
//}
//#endif

//
//String8 DirectXNative::Converter::ToString( _In_ D3DX11_IMAGE_FILE_FORMAT ImageFormat )
//{
//	StringStream8 wss;
//
//	switch ( ImageFormat )
//	{
//	case D3DX11_IFF_BMP:
//		wss << ".bmp";
//		break;
//	case D3DX11_IFF_JPG:
//		wss << ".jpg";
//		break;
//	case D3DX11_IFF_PNG:
//		wss << ".png";
//		break;
//	case D3DX11_IFF_DDS:
//		wss << ".dds";
//		break;
//	case D3DX11_IFF_TIFF:
//		wss << ".tiff";
//		break;
//	case D3DX11_IFF_GIF:
//		wss << ".gif";
//		break;
//	case D3DX11_IFF_WMP:
//		wss << ".wmp";
//		break;
//	default:
//		wss << ".UnsupportedFormat";
//		break;
//	}
//
//	return( wss.str() );
//}

//String8 DirectXNative::Converter::ToString( _In_ ShaderDx11::EShader ShaderType )
//{
//	String8 wszResult;
//
//	switch ( ShaderType )
//	{
//	case  ShaderDx11::eVertexShader:
//		{
//			wszResult = "VERTEX_SHADER";
//		} break;
//	case  ShaderDx11::eHullShader:
//		{
//			wszResult = "HULL_SHADER";
//		} break;
//	case  ShaderDx11::eDomainShader:
//		{
//			wszResult = "DOMAIN_SHADER";
//		} break;
//	case  ShaderDx11::eGeometryShader:
//		{
//			wszResult = "GEOMETRY_SHADER";
//		} break;
//	case  ShaderDx11::ePixelShader:
//		{
//			wszResult = "PIXEL_SHADER";
//		} break;
//	case  ShaderDx11::eComputeShader:
//		{
//			wszResult = "COMPUTE_SHADER";
//		} break;
//	}
//
//	return ( wszResult );
//}

#pragma region String8 to number

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String16 &szValue16, 
	_Outref_ Float64 &fValue64 
	)
{
	fValue64 = _wtof(szValue16.c_str());
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String16 &szValue16, 
	_Outref_ Float32 &fValue32 
	)
{
	fValue32 = static_cast<Float32>(_wtof(szValue16.c_str()));
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String16 &szValue16, 
	_Outref_ int64_t &iValue64 
	)
{
	iValue64 = _wtoi64(szValue16.c_str());
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String16 &szValue16, 
	_Outref_ int32_t &iValue32 
	)
{
	iValue32 = _wtoi(szValue16.c_str());
}

#pragma  endregion

#pragma region String8 to number

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String8 &szValue8, 
	_Outref_ Float64 &fValue64 
	)
{

	fValue64 = atof(szValue8.c_str());
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String8 &szValue8, 
	_Outref_ Float32 &fValue32 
	)
{
	fValue32 = static_cast<Float32>(atof(szValue8.c_str()));
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String8 &szValue8, 
	_Outref_ int64_t &iValue64 
	)
{
	iValue64 = _atoi64(szValue8.c_str());
}

void Herzeleid::Standard::Converter::ToNumber( 
	_In_z_ const Herzeleid::Standard::String8 &szValue8, 
	_Outref_ int32_t &iValue32 
	)
{
	iValue32 = atoi(szValue8.c_str());
}

#pragma  endregion

#pragma region Number to String8


void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const Float64 &fValue64 
	)
{
	szValue16 = std::to_wstring(fValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const Float32 &fValue32 
	)
{
	szValue16 = std::to_wstring(fValue32);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const int64_t &iValue64 
	)
{
	szValue16 = std::to_wstring(iValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const int32_t &iValue32 
	)
{
	szValue16 = std::to_wstring(iValue32);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const uint64_t &uiValue64 
	)
{
	szValue16 = std::to_wstring(uiValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String16 &szValue16, 
	_In_ const uint32_t &uiValue32 
	)
{
	szValue16 = std::to_wstring(uiValue32);
}

#pragma endregion

#pragma region Number to String8

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const Float64 &fValue64 
	)
{
	szValue8 = std::to_string(fValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const Float32 &fValue32 
	)
{
	szValue8 = std::to_string(fValue32);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const int64_t &iValue64 
	)
{
	szValue8 = std::to_string(iValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const int32_t &iValue32 
	)
{
	szValue8 = std::to_string(iValue32);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const uint64_t &uiValue64 
	)
{
	szValue8 = std::to_string(uiValue64);
}

void Herzeleid::Standard::Converter::ToString( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_ const uint32_t &uiValue32 
	)
{
	szValue8 = std::to_string(uiValue32);
}

#pragma endregion

#pragma region String 16-2-8

void Herzeleid::Standard::Converter::String8To16( 
	_In_z_ const Herzeleid::Standard::String8 &szValue8, 
	_Outref_ Herzeleid::Standard::String16 &szValue16 
	)
{
	szValue16 = String16(szValue8.begin(), szValue8.end());
}

void Herzeleid::Standard::Converter::String16To8( 
	_Outref_ Herzeleid::Standard::String8 &szValue8, 
	_In_z_ const Herzeleid::Standard::String16 &szValue16 
	)
{
	szValue8 = String8(szValue16.begin(), szValue16.end());
}

#pragma endregion